#include "head.h"

//设定航班
void add_flight(f_list *list)
{
    f_data data ;
    printf("请输入要增加的航班班次:");
    scanf("%d", &data.id);                                                   // 航班班次
    printf("请输入飞机机型:");
    scanf("%s", data.flighttype);                                          // 飞机机型
    printf("请输入航班起点站:");
    scanf("%s", data.startcity);                                           // 航班起点站
    printf("请输入航班终点站:");
    scanf("%s", data.arrivecity);                                          // 航班终点站
    printf("请输入起飞时间:");
    scanf("%02d:%02d", &data.starttime[0], &data.starttime[1]);          // 起飞时间
    printf("请输入到达时间:");
    scanf("%02d:%02d", &data.arrivetime[0], &data.arrivetime[1]);        // 到达时间
    printf("请输入飞行时间:");
    scanf("%s", data.flytime);                                             // 飞行时间
    printf("请输入票价:");
    scanf("%d", &data.value);                                                // 票价
    printf("请输入额定载客量:");
    scanf("%d", &data.maxNUM);                                               // 额定载客量
    printf("请输入剩余座位数量:");
    scanf("%d", &data.leftbuyersa);                                         // 剩余座位数量
    printf("是否起飞y/n:");
    scanf("%c", &data.whetherfly); 
    getchar();
    insert_double_node( list , data , 1);
    F_f_print(list);
}

//修改航班
void set_flight(f_list *list)
{
    if (NULL == list)
    {
        ERRLOG("链表的动态空间为空");
        return ;
    }
    if (NULL == list->next)
    {
        ERRLOG("传入的表内为空");
        return ;
    }
    f_node * ptr = list->next;
    int id;
    int num;
    int T_T;
    int o_o;
    char buf[128];
    char buf_2;
    print_forward_double_link_list(list);
    printf("请输入您要修改的航班班次:");
    scanf("%d" , &id);
    ptr = find_double_node_pos(list , id);
    printf("1:飞机机型\n");
    printf("2:航班起点站\n");
    printf("3:航班终点站\n");
    printf("4:起飞时间\n");
    printf("5:到达时间\n");
    printf("6:飞行时间\n");
    printf("7:票价\n");
    printf("8:额定载客量\n");
    printf("9:剩余座位数量\n");
    printf("0:是否起飞\n");
    printf("请输入对应的数字进行修改:");
    scanf("%d" , &num);
    switch (num)
    {
    case 1:
        printf("请输入新的飞机机型");
        scanf("%s" , buf);
        strcpy( ptr->data.flighttype ,  buf);
        printf("飞机机型修改成功 新的飞机机型为 %s\n" , buf);
        break;
    case 2:
        printf("请输入新的航班起点站");
        scanf("%s" , buf);
        strcpy( ptr->data.startcity ,  buf);
        printf("航班起点站修改成功 新的航班起点站为 %s\n" , buf);
        break;
    case 3:
        printf("请输入新的航班终点站");
        scanf("%s" , buf);
        strcpy( ptr->data.arrivecity ,  buf);
        printf("航班终点站修改成功 新的航班终点站为 %s\n" , buf);
        break;
    case 4:
        printf("请输入新的起飞时间");
        scanf("%02d:%02d" , &T_T , &o_o);
        ptr->data.starttime[0] =  T_T;
        ptr->data.starttime[1] =  o_o;
        printf("起飞时间修改成功 新的起飞时间为 %02d:%02d\n" , T_T ,o_o);
        break;
    case 5:
        printf("请输入新的到达时间");
        scanf("%02d:%02d" , &T_T , &o_o);
        ptr->data.arrivetime[0] =  T_T;
        ptr->data.arrivetime[2] =  o_o;
        printf("到达时间修改成功 新的到达时间为 %02d:%02d\n" , T_T ,o_o);
        break;
    case 6:
        printf("请输入新的飞行时间");
        scanf("%s" , buf);
        strcpy( ptr->data.flytime ,  buf);
        printf("飞行时间修改成功 新的飞行时间为 %s\n" , buf);
        break;
    case 7:
        printf("请输入新的票价");
        scanf("%d" , &T_T);
        ptr->data.value =  T_T;
        printf("票价修改成功 新的票价为 %d\n" , T_T);
        break;
    case 8:
        printf("请输入新的额定载客量");
        scanf("%d" , &T_T);
        ptr->data.maxNUM = T_T;
        printf("额定载客量修改成功 新的额定载客量为 %d\n" , T_T);
        break;
    case 9:
        printf("请输入新的剩余座位数量");
        scanf("%d" , &T_T);
        ptr->data.leftbuyersa = T_T;
        printf("剩余座位数量修改成功 新的剩余座位数量为 %d\n" , T_T);
        break;
    case 0:
        printf("请输入新的起飞状态");
        getchar();
        buf_2 = getchar();
        ptr->data.whetherfly = buf_2;
        printf("起飞状态修改成功 新的起飞状态为 %c\n" , buf_2);
        break;
    default:
        break;
    }
    F_f_print(list);


}